package com.sxf.redis.iredis;

import org.redisson.api.ObjectListener;

/**
 * @description: 增加key的监听
 * @author: zhangyb@ccccit.com.cn
 * @date: 2021年1月5日 上午10:16:34
 */
public interface IListenerRedisUtils {
	/**
	 * 增加key的监听
	 * @param nameSpace
	 * @param key
	 * @param objectListener 
	 * @return 监听器的ID
	 */
	Integer addListener(String nameSpace, String key, ObjectListener objectListener);

	/**
	 * 增加key的监听
	 * @param key
	 * @param objectListener
	 * @return
	 */
	default Integer addListener(String key, ObjectListener objectListener) {
		return addListener(null, key, objectListener);
	}
	
	/**
	 * 删除key的监听
	 * @param nameSpace
	 * @param key
	 * @param listenerId 监听ID
	 */
	void removeListener(String nameSpace, String key, int listenerId);
	
	/**
	 * 删除key的监听
	 * @param key
	 * @param listenerId
	 */
	default void removeListener(String key, int listenerId) {
		removeListener(null, key, listenerId);
	}
	
	
}
